#-*- coding: utf-8 -*-
#@File    : handle_excel_V2.py
#@Time    : 2022/8/7 11:07
#@Author  : xintian
#@Email   : 1730588479@qq.com
#@Software: PyCharm
#Date:2022/8/7
#TODO:time-20220808，task-讲4个版本excel数据获取！
#目标：作为测试测试人员，非常缺乏一个编程思路，代码优化或者迭代的概念！
#编程理念：先实现，后优化!
pass
"""
版本:v1.0
需求：自动化执行用例，需要读取excel里面的数据，写一个功能函数
需求分析：
    - 一定沟通，有些项目里面成员描述不清晰
    - 1.入参是什么：函数调用者需要传入什么参数
        - 文件路径：文件名 文件格式
    - 2.需要返回数据是什么？
        - 数据内容
            - 1.请求体数据
            - 2.预期的响应结果
            - 3.用例描述
        - 数据格式：这个数据函数调用者在什么场景使用！
            - Pytest框架里面的ddt  数据驱动---[(),(),()]
"""
#xlutils  写入excel文件 worksheet.write(行号，列号，内容)
import  xlrd# pip install xlrd#   panda  openpyxl
def get_excel_data(file_path,sheet_name):
    #1.打开文件-从文件路径读取到内存
    #formatting_info=True 保证excel文件原样式
    work_book = xlrd.open_workbook(file_path,formatting_info=True)
    #print(work_book.sheet_names())#获取所有的表名
    #2.获取sheet对象
    work_sheet = work_book.sheet_by_name(sheet_name)

    # #扩展1：获取一行数据
    # print(work_sheet.row_values(0))
    # #扩展2：获取一列数据
    # print(work_sheet.col_values(0))
    # #扩展3：获取单元格数据 坐标（行编号，列编号）
    # print(work_sheet.cell(0,0).value)

    #3.获取对应的数据
    row_index = 0#初始行编号
    res_data = []#结果返回数据
    for one in work_sheet.col_values(0):#根据第0列数据的个数进行遍历次数
        req_body = work_sheet.cell(row_index,9).value#i请求数据
        exp_data = work_sheet.cell(row_index,11).value#预期的响应数据
        # [(请求数据1，响应数据1),(请求数据2，响应数据2)]
        res_data.append((req_body,exp_data))
        row_index += 1#下一行

    return res_data


if __name__ == '__main__':
    res = get_excel_data('../data/Delivery_System_V1.5.xls','登录模块')
    for one in res:
        print(one)

"""
测试反馈：
    - 1.这个代码必须要求excel测试用例没有任何的错误和多余数据
    - 2.如果一个sheet是一个业务模块，里面有很多接口的用例数据，这样写就会出现数据乱套
    
"""